home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Epic Collection
/
Epic Collection, The (Epic Marketing)(1996).iso
/
business
/
pb009.dms
/
pb009.adf
/
Flexi-Base-ReadMe
< prev
next >
Wrap
Text File
|
1990-01-04
|
10KB
|
206 lines
Instructions for the use of
FLEXI-BASE Current version 2.0 February 1990
Flexi-base is a small (30K) but powerful database program. It originally
came about because I feel there is a real shortage of database programs for
the Amiga, and those that are around are virtually falling over themselves
with complexity of use. These also prove to be rather expensive !
Flexi-Base is simplicity to use. You are not tied to any particular layout
of your data page or the order in which you enter the data thereon. To start
using Flexi-Base you must set up a database specification, and the program
Flexi-Config will help you to do just this. Click on it`s icon and a very
simple CLI style window will open, you are asked the database`s name, how
many fields in each record and what their names and lengths are. Then you
are asked to position each on the data page with the mouse. The field will
appear at the bottom of the screen and by passing the pointer over this, it
will "stick" and move with the pointer. When it`s in the right place, one
click will secure it there. Once this is done, the specification or
configuration is stored and the program will exit. To use this new database,
click on the Flexi-Base Icon and select the database`s name from the list
of files given. The data page will be built up on screen and the first
record (if there is one) will be displayed. If this is a new or empty
database then you will automatically be placed in the Enter New Record mode,
the only exit from this page is by the ESC key which may be pressed at any
time while entering data. The "Yes, No, Cancel" dialogue boxes at the end
of these data entry pages do not necessarily require the use of the mouse,
you may click one of the three buttons but just stiking the initial key on
the keyboard, I think this is a nice short cut.
In normal use there are three menus. The Project, Record and Mailshot menus.
The former controls the system functions of Flexi-Base and these are very
few,Different Database which requests the user to select a different
database to open (Never!), Kill a data base which kills the current database,
and Quit which exits to the workbench, selecting cancel from the file
requester also has the effect of quitting.
The record menu has Ten options available at present and all but one have
keyboard short cuts. The first two have the effect of stepping forwards or
backwards through the database one record at a time unless you have a search
profile active and then it will be stepping forwards and backwards through
the records that match the search requirements.
The next two options move the display to either the top or bottom of the
database and cancel the stepping through of only the records that match the
search profile.
The search option allows you to enter a search profile with which to match
any records in the database and display only these. For a search to take
place you must fill out a data page but you are able to place one extra
character before each field to inform Flexi-Base how the data you enter is
to be matched with records on the database. There are eight special
characters, these are:-
= Is the Same as ...
# Is NOT the Same as ...
^ Does Contain ...
- Does NOT Contain ...
> Comes after ... }
< Comes before ... } Not implimented
} on Version 1.01
? Does Contain ... or is blank }
/ Does NOT Contain ... or is blank }
any other characters or blank is a wild card and no comparison will take
place, e.g. anything goes. So if a profile had the entry of
^fred
all records where "fred" appeared anywhere within that given field would
be displayed (as long as no other field profile inhibited it). The
comparisons are not case sensitive and so there are no constraints placed on
you to know what is already in your database. As an example, suppose a
simple record was given the profile:-
Name:^smith Tel.:^01
Address:-high street
:#camden
:=london
This would instruct Flexi-Base to display all records where the name
contains "smith" and the telephone number has an "01" in it but does not
live in camden but does live in london. A record that would match this
might be:-
Name:John Smithson Tel.:01 123 1234
Address:Station Road
:Finchley
:London
And one that would not:-
Name:Eric Smith Tel.:0895 12345
Address:Station Road
:Hillingdon
:London
by virtue of the fact that the `phone No. does not contain "01" even though
all the other criteria are satisfied.
Once a (group of) record(s) has been matched to the profile, the "Next
record", Previous record" display options will only work on this group. To
reset this to work on all records in the database, use the "First record",
"Last record" options from the menu.
The print option is exteremely simple at this stage, merely sending a stream
to the printer as it is fetched from disc. No formatting takes place at the
moment... (later Ver... 2.1?)
The modify option is very similar to entering new data. The current record
on display is stepped through and the fields may be altered at will. If the
new data is ok the record will be stored, if not it may be re-entered or
cancelled in which case the new data will be ignored and the old record will
be re-displayed.
The Enter New Records option has been discussed at the beginning of this
document.
About the Sort option see later...
Deleting records, the current record will be deleted and the display
adjusted accordingly. If the only record in a database is deleted you will
automatically be placed in the data entry mode afterwards. No checks are
made on the records you are about to delete so be careful !
All records on Flexi-Base are completely RAM: based, that is the whole file
is brought into ram and any operations occur there. This results in fairly
fast activity but has several drawbacks. Firstly if you reset your Amiga or
the power fails, Any changes you have made will not be stored but the
program is fail safe in this respect, that is: no file is left open on disc
so you will not get "File already open" alerts when it is obvious that it
most definately is not but was not closed before the machine reset. The
second aspect is that the file must be buffered before and after use. The
file is copied in it`s entirety to RAM: and then copied back when finished
with (if anything has changed). To prevent worrying periods of apparent
inactivity, when any appreciable work is being done, there is a "Work done
guage" which is displayed at the top of the screen. When buffering or
unbuffering a database or when re-organising the database after a delete,
the gauge is displayed and the level of work done will gradually step up to
the 100% mark when Flexi-base will listen to you again.
The sort routine is fairly good. I originally wrote it as a straight-
forward bubble sort but with a database of 480 records each 179 bytes long
it took over five hours (!!"?##?!) to sort. This was due mainly to two
problems.
1. Bubble sorts are inherently slow.
2. All sorting was done using the filing system.
Bubble sorts (stop laughing at the back) are good for two reasons
1. They always work !
2. They are easy to program (double !)
I remember from college going into all sorts of different sort algorithms
and remember a demonstration of a shell sort where data was arranged in
absolute worst condition and it failed to sort correctly as well as being
slower than a bubble sort. Moral: doctors should attend the sick and
leave the.. (sh)ell alone... (don`t throw monitors, they break easily).
So I set about exploring new methods of sorting and came up with something
I call a "Pre-ordered Bubble Sort" someone`s probably thought of it before
and called it something completely different. The thinking goes... Bubble
sorts are great on small lumps of data. So to give Flexi-Base a head start,
the database is scanned and all of a particular field starting with the same
character are grouped together and then bubbled. Thus Flexi-Base will fragment
the database and end up with, say, twenty small(ish) lumps of data, even
the accursed AmigaDOS would be able to move small groups of records about
with reasonable speed... And it worked!!, well, sort of. The problem comes in
that if you have a big database with a lot of fields (the one you choose to
sort by) all starting with the same character... you`re back to square one.
Large lump of data + Bubble sort = go-and-watch-a-film-time. Another problem
is that this lump of data, is not handled by AmigaDOS until it`s sorted that
means that because I only gave Flexi-Base a measely 50K to play with, as
workspace, if you have a 100K database with half the records with a given
field all starting with the same letter/number/character, your going to have:
1. A long wait
2. A cross Amiga
3. Probably a program failure (not GURU don`t panic)
Whichever, either you or your amiga will disappear up it`s own hole !
The way to avoid this is three fold:
a. Try to avoid sorting on fields that bear a startling similarity
b. Use several smaller databases ( <40K )
c. Don`t use the sort option, Flexi-base will use however much is free in
RAM: maybe upto 8 or 9 Megs. On it`s own it`ll handle huge databases
Now your probably thinking "Jesus, all those limitations, this bloke must
be a pratt!" well on the latter part your probably right but... I use
Flexi-base with a 340K database holding my work records and I don`t find
any problem. It seems these limitations only rear their ugly heads if you
go looking for em`. See what you think, if you don`t like it go and pay
ninety quid for superbase, so there. (sniff)